from soj.builtin.execute.windows.winexe import WinexeExecutor
from soj.builtin.execute.common import *
import platform
class ExecuteOrchestrator:
    def __init__(self,exec:Path,args:str,time:int,mem:int
                 ,input:Path,output:Path,error:Path,report:Path):
        if platform.system()=="Windows":
            self.executor=WinexeExecutor(exec,time,mem,input,output,error,report,args)
        else:
            raise NotImplementedError("Not impl linux runner")
    def execute(self)->ExecutorResult:
        return self.executor.execute()
    def get_result(self)->ExecutionResult:
        return self.executor.read_report()